import Taro, {Component, Config} from '@tarojs/taro'
import {Provider} from '@tarojs/mobx'
import 'taro-ui/dist/style/index.scss' // 全局引入一次即可
import shoppingCarListStore from './store/shopping-car-list'
import userInfoStore from './store/user-info'
import interceptor from './request-interceptor/index'

Taro.addInterceptor(interceptor)

import './app.less'
import Home from "./pages/home";
import locationStore from "./store/location";

// 如果需要在 h5 环境中开启 React Devtools
// 取消以下注释：
// if (process.env.NODE_ENV !== 'production' && process.env.TARO_ENV === 'h5')  {
//   require('nerv-devtools')
// }

const store = {
  shoppingCarListStore,
  locationStore,
  userInfoStore
}

class App extends Component {

  /**
   * 指定config的类型声明为: Taro.Config
   *
   * 由于 typescript 对于 object 类型推导只能推出 Key 的基本类型
   * 对于像 navigationBarTextStyle: 'black' 这样的推导出的类型是 string
   * 提示和声明 navigationBarTextStyle: 'black' | 'white' 类型冲突, 需要显示声明类型
   */
  config: Config = {
    pages: [
      'pages/home/index',
      'pages/detail/index',
      'pages/order/index',

    ],
    window: {
      backgroundTextStyle: 'light',
      navigationBarBackgroundColor: '#b2b9d6',
      navigationBarTitleText: 'WeChat',
      navigationBarTextStyle: 'black',

    }
  }

  componentDidMount() {
  }

  componentDidShow() {
  }

  componentDidHide() {
  }

  componentDidCatchError() {
  }

  // 在 App 类中的 render() 函数没有实际作用
  // 请勿修改此函数
  render() {
    return (
      <Provider store={store}>
        <Home/>
      </Provider>
    )
  }
}

Taro.render(<App/>, document.getElementById('app'))
